﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СпособыОпределенияВремениПроведенияПлатежногоДокумента
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"2b4f503b-1a09-42d5-b426-ee187a560f26\", \"Представление\":\"ПоВремениРегистрацииДокумента\"}")]
		ПоВремениРегистрацииДокумента = 0,//По времени регистрации документа
		[EnumMember(Value = "{\"Ссылка\":\"5618e54d-4bc9-40a1-87a4-84e7ebc8de4d\", \"Представление\":\"ПоКонцуДняРегистрацииДокумента\"}")]
		ПоКонцуДняРегистрацииДокумента = 1,//По концу дня регистрации документа
	}
	public static partial class СпособыОпределенияВремениПроведенияПлатежногоДокумента_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПоВремениРегистрацииДокумента = new Guid("18ee26b4-567a-260f-42d5-1a092b4f503b");//По времени регистрации документа
		public static readonly Guid ПоКонцуДняРегистрацииДокумента = new Guid("e784a487-c8eb-4dde-40a1-4bc95618e54d");//По концу дня регистрации документа
		public static СпособыОпределенияВремениПроведенияПлатежногоДокумента Получить(this СпособыОпределенияВремениПроведенияПлатежногоДокумента Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыОпределенияВремениПроведенияПлатежногоДокумента Получить(this СпособыОпределенияВремениПроведенияПлатежногоДокумента Значение, Guid Ссылка)
		{
			if(Ссылка == ПоВремениРегистрацииДокумента)
			{
				return СпособыОпределенияВремениПроведенияПлатежногоДокумента.ПоВремениРегистрацииДокумента;
			}
			else if(Ссылка == ПоКонцуДняРегистрацииДокумента)
			{
				return СпособыОпределенияВремениПроведенияПлатежногоДокумента.ПоКонцуДняРегистрацииДокумента;
			}
			return СпособыОпределенияВремениПроведенияПлатежногоДокумента.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыОпределенияВремениПроведенияПлатежногоДокумента Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыОпределенияВремениПроведенияПлатежногоДокумента Значение)
		{
			switch (Значение)
			{
				case СпособыОпределенияВремениПроведенияПлатежногоДокумента.ПоВремениРегистрацииДокумента: return ПоВремениРегистрацииДокумента;
				case СпособыОпределенияВремениПроведенияПлатежногоДокумента.ПоКонцуДняРегистрацииДокумента: return ПоКонцуДняРегистрацииДокумента;
			}
			return Guid.Empty;
		}
	}
}